Select the attributes you want customer to be able to choose,i.e. color, size,... You can then create sub-products for available options.
<br/>
<?php
$this->widget('Xpress.extensions.web.widgets.XGridView', array(
    'id' => 'sub-product-attribute',
    'dataProvider' => $this->getAttributeGroups(),
    'selectableRows' => 2,
    'htmlOptions' => array('class' => 'table table-hover'),
    'columns' => array(
        array(
            'class' => 'CCheckBoxColumn',
            'value' => '$data->id',
            'htmlOptions' => array('width' => '3%', 'name' => 'attribute_groups[]'),
        ),
        'name',
        array(
            'name' => 'status',
            'filter' => array(1 => 'Active', 0 => 'Inactive'),
            'type' => 'raw',
            'value' => function ($data) {
                echo CHtml::link($data->status == 1 ? "<i class='icon icon-ok'></i>" : "<i class='icon icon-remove'></i>", '#'.$data->id, array('class' => 'subattr-toggle-status'));
            }
        ),
    )));
?>
<?php
$cs = Yii::app()->clientScript;
$cs->registerCss('selected color', '
    #sub-product-attribute tr.selected{
        background-color:#ccc;
    }
');
$cs->registerScript('attribute_group' . uniqid(), '
    var checked=' . CJSON::encode($model->attribute_groups(array('select' => 'id'))) . ';
    $.each(checked,function(index,value){
        $(".select-on-check[value="+value.id+"]").prop("checked","checked");
        $(".select-on-check[value="+value.id+"]").parent().parent().addClass("selected");
    })

');
?>